package com.keyue.isolate.enums;


import com.keyue.isolate.handler.DataIsolateExpStragegy;
import com.keyue.isolate.handler.InDataIsolateExpStragegy;
import com.keyue.isolate.handler.OrLikeDataIsolateExpStragegy;
import lombok.Getter;

@Getter
public enum ExpTypeEnum {

    OR_LIKE("like", "模糊查询", OrLikeDataIsolateExpStragegy.SINGLE_INSTANCE),
    IN("in", "in查询", InDataIsolateExpStragegy.SINGLE_INSTANCE);

    private String code;
    private String desc;
    private DataIsolateExpStragegy dataIsolateExpStragegy;

    ExpTypeEnum(String code, String desc, DataIsolateExpStragegy dataIsolateV2ExpStragegy) {
        this.code = code;
        this.desc = desc;
        this.dataIsolateExpStragegy = dataIsolateV2ExpStragegy;
    }

    public static DataIsolateExpStragegy getDataIsolateExpStragegy(String code) {
        for (ExpTypeEnum value : values()) {
            if (value.code.equalsIgnoreCase(code)) {
                return value.dataIsolateExpStragegy;
            }
        }
        return IN.dataIsolateExpStragegy;
    }
}
